#include <stdio.h>

void function_1(int array[], int array_size);

// const 表示不能通过修改数组的内容
void function_2(const int array[], int array_size);

int function_3(const int array[]);

/**
 * 函数和数组
 */
int main() {

	int array_size = 10;
	int array[array_size];

	function_1(array, array_size);

	function_2(array, array_size);

	// 在函数内将传递的数组重新赋值，并不会影响原数组
	array_size = function_3(array);
	function_2(array, array_size);

}

void function_1(int array[], int array_size) {

	for (int i = 0; i < array_size; i++) {
		array[i] = i;
	}

}

void function_2(const int array[], int array_size) {

	for (int i = 0; i < array_size; i++) {
		// const 不能修改数组元素
		printf("array[%d] = %d\n", i, array[i]);
	}

}

int function_3(const int array[]) {
	int a[5] = {3, 8, 9};
	// 在函数内将传递的数组重新赋值
	array = a;
	return 5;
}